<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 预解析
      /*  1. 变量会预解析(变量的提升) 但是赋值不会提升
          2. 函数会预解析 (函数提升) */

      //预解析JS引擎做的
      //var  num
      //  console.log(num) //undefined
      //num=10
      //1.2 变量提升
      var num = 10;

      function fun() {
        console.log(num);
        var num = 20;
        console.log(num);
      }
      fun();

      //如何避免预解析的错误?  无论是变量亦或者函数  都要遵循先声明后调用
      //  var a = b = c = 9    
      //只有var a是在局部内 其他都是全局变量   
    </script>
  </body>
</html>
